School of Computer Science BCS accreditation 2021 - 2026
[Home]
Computer Systems Engineering BEng (Hons) - 2.1.1 Knowledge and understanding of facts, concepts, principles
Return to programme overview.
COMP10120 First Year Team Project
Enquiry based learning topics related to development of web based applications and group work.
Assesement : Individual coursework, Presentation, Lab work
Assesement : Individual coursework, Presentation, Lab work
COMP11120 Mathematical Techniques for Computer Science
It teaches areas of mathematics required for various fields of computer science in the form of the concept of proof, formal logic, probability, recursion and induction, relations, and linear algebra.
Assesement : Examination, Individual coursework
Assesement : Examination, Individual coursework
COMP11212 Fundamentals of Computation
The unit consists of two halves. The first introduces regular expressions, automata and grammars with an emphasis on the relationships between the formalisms and their use to solve problems. The second half uses a simple WHILE language to introduce the topics of complexity, correctness and computability.
Assesement : Examination, Individual coursework
Assesement : Examination, Individual coursework
COMP12111 Fundamentals of Computer Engineering
Covers basic logic design, combinatorial and sequential systems and processor design (memory, CPU and I.O.).
Assesement : Examination, Lab work
Assesement : Examination, Lab work
COMP13212 Data Science
This course is an introduction to data science, where data science refers to a set of concepts, techniques, and theories for extracting knowledge and information from data using computers.
Assesement : Examination, Lab work
Assesement : Examination, Lab work
COMP15111 Fundamentals of Computer Architecture
The course introduces the concepts involved in Fundamentals of Computer Architecture. Its aim is to enable the student to develop the skills required to comprehend Computer Systems, be they terminology, models, methodologies, structures (or topologies), timing, number representation and a general introduction to basic computer systems. Fundamental concepts are taught through lectures, example classes and labs
Assesement : Examination, Individual coursework
Assesement : Examination, Individual coursework
COMP15212 Operating Systems
Covers the architecture of principles of modern operating systems, including memory, processes, security, virtualisation, file systems. High level concepts cover abstraction, caching, hashing. Introduces the C programming language as a vehicle for exploring these concepts at OS level.
Assesement : Examination, Individual coursework
Assesement : Examination, Individual coursework
COMP16321 Introduction to Programming 1
This course is an introduction to programming the fundamental concepts surrounding this.
Assesement : Examination, Individual coursework, Lab work
Assesement : Examination, Individual coursework, Lab work
COMP16412 Introduction to Programming 2
We teach the general principles of object oriented programming including encapsulation, inheritance, polymorphism, abstraction, inner classes and interfaces, in addition to the particularities of the Java language such as the Java Collections Framework and JavaFX.
Assesement : Examination, Individual coursework, Lab work, Workshops
Assesement : Examination, Individual coursework, Lab work, Workshops
COMP22111 Processor Microarchitecture
The module aims to give a view of the role of a digital hardware designer, taking an idea and implementing it as a silicon chip. A processor is a representative example of logic used in today's chips, also giving further insight into how computers actually work. Students investigate leading edge approaches to processor design as well as being introduced to approaches current in the research domain.
Assesement : Examination, Lab work
Assesement : Examination, Lab work
COMP22712 Microcontrollers
This course is fully lab-based, focussing on the use of microprocessors/microcontrollers for simple control and interfacing applications, and develops understanding of the programming and operation of the ARM processor including operating system aspects such as interprocess communication and security.
Assesement : Lab work
Assesement : Lab work
COMP23311 Software Engineering 1
Building and testing large open source systems
Assesement : Examination, Individual coursework, Group coursework
Assesement : Examination, Individual coursework, Group coursework
COMP23412 Software Engineering 2
Students learn to build and maintain complex enterprise applications that follow established programming design patterns such as the Model View Controller (MVC). The theoretical principles of the MVC are put in practice on a widespread Web framework, ie Spring.
Assesement : Examination, Group coursework, Lab work
Assesement : Examination, Group coursework, Lab work
COMP25212 System Architecture
The aims of this course are to introduce the most important system architecture approaches, and to give a wider understanding of how real systems operate and, from that understanding, the ability to optimise their use. Fundamental concepts are taught through lectures, example classes and labs
Assesement : Examination, Lab work
Assesement : Examination, Lab work
COMP26020 Programming Languages & Paradigms
The course unit covers essential knowledge, concepts, principles in relation to different aspects of programming languages, including different paradigms (eg, imperative vs declarative) as well as compilation techniques and current trends.
Assesement : Examination, Individual coursework, Lab work
Assesement : Examination, Individual coursework, Lab work
COMP26120 Algorithms and Data Structures
This course considers essential facts, concepts, principles and theories related to Algorithms and Data Structures, topics which are at the core of Computer Science. This includes theoretical tools include algorithmic complexity analysis and fundamental algorithmic design principles.
Assesement : Examination, Individual coursework, Lab work
Assesement : Examination, Individual coursework, Lab work
COMP30040 Third Year Project Laboratory
The knowledge gained during the programme is demonstrated by the student in executing the project
Assesement : Individual coursework
Assesement : Individual coursework
COMP32211 Implementing System-on-Chip Designs
This course covers the translation of algorithms into a realisable hardware design. The practical part of the course develops higher level models into Verilog HDL and thence to an FPGA. In the lectures the process of mapping designs to ASICs is studied with emphasis on practicalities such as trading chip area, delays, power, etc. to meet a specification. Emphasis is also given to areas which are used extensively in the practical work, particularly simulation, debugging and verification.
Assesement : Examination, Individual coursework, Lab work
Assesement : Examination, Individual coursework, Lab work
COMP35112 Chip Multiprocessors
Lectures on these topics: how to construct a parallel computer, shared memory vs. distributed memory; how to program a parallel computer, data sharing vs. message passing (vs. functional programming); multithreading; cache coherence; synchronisation mechanisms; hardware support for synchronisation; lock-free data structures; OpenMP/MPI; thread-level speculation; transactional memory; memory consistency; attached accelerators and their programming; functional programming and dataflow.
Assesement : Examination, Lab work
Assesement : Examination, Lab work